<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<head>
<script src="../../resources/js-test.js"></script>
</head>
<body>
  Test HTMLUnknownElement
  <p>
  This test verifies the following:
  <ol>
  <li>The <code><a href="http://www.whatwg.org/specs/web-apps/current-work/multipage/elements.html#htmlunknownelement">HTMLUnknownElement</a></code>
      interface is used for HTML elements that are not defined by the HTML5
      specification (or other applicable specifications).
  <li>The <code><a href="http://www.whatwg.org/specs/web-apps/current-work/multipage/elements.html#htmlunknownelement">HTMLUnknownElement</a></code>
      interface is <b>not</b> used for HTML elements that <b>are</b> defined
      by the HTML5 specification (or other applicable specifications).
  </ol>
  </p>
  </p>
  <div id="console"></div>

  <b></b>
  <foo1></foo1>
  <foo2></foo2>

  <font></font>
  <h1></h1>
  <table></table>

  <script>
// These tags are required by the HTML spec
var validTags = ["div", "font", "h1", "table"];

// These tags are manufactured and should not be recognized by any browser
var bogusTags = ["foo1", "foo2"];

var allTags = validTags.concat(bogusTags);

function isBogusTag (tag) {
    for (var k in bogusTags) {
        var bogusTag = bogusTags[k];
        if (tag == bogusTag) {
            return true;
        }
    }
    return false;
}

var DynamicElements = new Array();

for (var k in allTags) {
    var tag = allTags[k];
    DynamicElements[tag] = document.createElement(tag);
}

for (var element in DynamicElements) {
    shouldBeTrue("DynamicElements[\"" + element + "\"]" + " instanceof HTMLElement");
    if (isBogusTag(element)) {
        shouldBeTrue("DynamicElements[\"" + element + "\"]" + " instanceof HTMLUnknownElement");
    } else {
        shouldBeFalse("DynamicElements[\"" + element + "\"]" + " instanceof HTMLUnknownElement");
    }
}

var staticElements = new Array();

for (var k in allTags) {
    var tag = allTags[k];
    staticElements[tag] = document.getElementsByTagName(tag)[0];
}

for (var staticElement in staticElements) {
    if (staticElements[staticElement]) {
        if (isBogusTag(staticElement)) {
            shouldBeTrue("staticElements[\"" + staticElement + "\"]" + " instanceof HTMLUnknownElement");
        } else {
            shouldBeFalse("staticElements[\"" + staticElement + "\"]" + " instanceof HTMLUnknownElement");
        }
    }
}
</script>
</body>
</html>
